# Моделирование электромагнитного сигнала на C++
Проект делается в рамках одноимённого курса для студентов инженерной группы кафедры фотоники и физики микроволн ФФ МГУ.

В данном случае пишется программа для моделирования электромагнитного сигнала.

# Сборка и настройка проекта, известные проблемы
Лишних команд в этой инструкции нет, по этому прочитать и выполнить надо до конца.

## Настройка ssh доступа git

Для начала надо добавить ssh ключ в систему командой `ssh-keygen`, и добавить его в сам github/notabug.

Откройте терминал. Затем введите последовательно следующие команды:
```bash
ssh-keygen -t ed25519 -C "analyssochsystem"
cat .ssh/id_ed25519.pub 
```
`cat .ssh/id_ed25519.pub ` выведет содержимое файла. 
В винде оно должно лежать в C:\Users\your_username/.ssh. 
Файл также можно открыть просто текстовым редактором.
Он должен выглядить как то так:

```
ssh-ed25519 KMLKDDj409jfpwjfjw4qj4jpPJPDjiwdijiejPOWdi3jr0jfpimappojdd3wOIJDknOW analyssochsystem
```

Затем содержимое файла копируется(полностью) и добавляется в веб-интерфейсе в [настройках аккаунта](https://notabug.org/user/settings/ssh). Нужно придумать имя ключа, ввести его в верхнем поле, а в нижнем вставить само содержимое файла. Не в коем случае не скидывайте никому свой приватный ключ(файл без расширения), тогда вы рискуете оставить огромную дырку в безопасности вашего аккаунта. Имейте в виду, что в винде отображение расширений файлов по умолчанию выключено, а отображение скрытых папок и файлов(начинающихся с точки) по умолчанию выключено везде.
## Настройка окружения и запуск
Для клонирования используется команда `git clone git@notabug.org:Nikita-The-First/emsignal.git`, то есть клонируется через ssh. Если вы собираетесь что то заливать, лучше склонировать именно так, потом меньше мороки. Периодически нужно делать `git pull`, иначе могут возникнуть конфликты с другими участниками проекта, да и просто всё всегда будет в актуальном состоянии.
### UNIX-подобные ОС, включая linux и mac
Установите пакеты `build-essential cmake`, в дистрибутивах __Linux__ на базе дебиан можно поставить командой 
```shell
sudo apt install build-essential cmake
```
Дальнейшие инструкции актуальны также и для __Mac OS__.
Откройте терминал. Введите последовательно следующие команды:
```bash
git clone git@notabug.org:Nikita-The-First/emsignal.git
cd emsignal
mkdir build 
cd build
cmake ..
make 
./task1
```
### Windows
Oткройте терминал, как правило это можно сделать через меню правой кнопки мыши с зажатым `Shift` в файловом менеджере. Введите последовательно следующие команды:
```shell
git clone git@notabug.org:Nikita-The-First/emsignal.git
```
Установите QtCreator(нужен впн), [Kdevelop](https://www.kdevelop.org/download), Visual Studio(емнип 2015 и старше), или любую другую IDE, умеющую работать с _cmake_. Импортируйте туда проект. 
Также есть сама улита [cmake](https://cmake.org/download), и её тоже надо поставить.
В виндовой версии поставка графическим интрефейсом, через котороый переделывем проект во что душе угодо.
По мимо этого вам понадобится компилятор(желательно mingw).

## Работа с git

Периодически нужно делать `git pull`, иначе могут возникнуть конфликты с другими участниками проекта.
Заливать изменения можно следующим способом.
```bash
git pull
git add .
git commit -m "message"
git push
```

В файл __.gitignore__ можно добавлять всё что вы не хотели бы заливать, например виртуальные окружения, бинарные файлы, файлы настроек и так далее. 

Можно не испоьзовать ssh, но тогда каждый раз вводить пароль при  `git push`.

Интеграцию с гит имеет большинство сред разработки, и лучше использовать её.


## Известные проблемы

Не забывайте довольно универсальный способ решения проблем: снести всё и поставить заново как надо. Порой так быстрее.

### Если вы вдруг склонировали через http

Попробуйте 

```bash
git remote rm origin
git remote add origin git@notabug.org:Nikita-The-First/emsignal.git
git fetch
```

Или страдайте, вводя пароль каждый раз, если не прикроют как на гитхабе.